package com.haixiaoke.saas.repairs.service;

import com.haixiaoke.saas.common.core.domain.AjaxResult;
import com.haixiaoke.saas.repairs.domain.Repairs;

import java.util.List;

/**
 * 报修Service接口
 * 
 * @author panda
 * @date 2025-07-05
 */
public interface IRepairsService {
    /**
     * 查询报修
     * 
     * @param id 报修主键
     * @return 报修
     */
    Repairs selectRepairsByRepairsId(Long id);

    /**
     * 查询报修列表
     * 
     * @param repairs 报修
     * @return 报修集合
     */
    List<Repairs> selectRepairsList(Repairs repairs);

    /**
     * 新增报修
     * 
     * @param repairs 报修
     * @return 结果
     */
    AjaxResult insertRepairs(Repairs repairs);

    /**
     * 修改报修
     * 
     * @param repairs 报修
     * @return 结果
     */
    int updateRepairs(Repairs repairs);

    /**
     * 批量删除报修
     * 
     * @param ids 需要删除的报修主键集合
     * @return 结果
     */
     int deleteRepairsByRepairsIds(Long[] repairsIds);

    /**
     * 删除报修信息
     * 
     * @param id 报修主键
     * @return 结果
     */
     int deleteRepairsByRepairsId(Long repairsId);

    /**
     * 软删除报修信息
     * @param repairsId
     * @return
     */
    int softDeleteRepairsByRepairsId(Long repairsId, String tenantId);

    /**
     * 完成报修
     * @param repairsId 报修id
     * @return
     */
    AjaxResult completeRepairs(Long repairsId, String userName, String tenantId);

    /**
     * 验收报修
     * @param repairsId 报修id
     * @return
     */
    AjaxResult checkRepairs(Long repairsId, String userName);

    /**
     * 统计报修待处理
     * @return
     */
    int countWaiting(String tenantId);
}
